//SPDX-FileCopyrightText: Copyright 2025-2025 深圳市同心圆网络有限公司
//SPDX-License-Identifier: GPL-3.0-only

package api_common

import (
	"context"

	"gitcode.com/eteam/api-server/dao/board_dao"
)

/*
 * 加入到画板成员中
 * 1. 增加到画板成员列表
 * 2. 检查是否有管理员
 *
 * 调用前需要检查
 * 1. 画板是否存在
 */
func JoinBoard(ctx context.Context, memberInfo *board_dao.MemberInfoDbItem) error {
	//增加到画板成员列表
	err := board_dao.MemberInfoDao.Insert(ctx, memberInfo)
	if err != nil {
		return err
	}
	//检查是否有管理员
	if !memberInfo.Admin {
		count, err := board_dao.MemberInfoDao.CountByAdmin(ctx, memberInfo.BoardId, true)
		if err != nil {
			return err
		}
		if count == 0 {
			err = board_dao.MemberInfoDao.UpdateAdmin(ctx, memberInfo.BoardId, memberInfo.MemberUserId, true)
			if err != nil {
				return err
			}
		}
	}
	return nil
}
